home *** CD-ROM | disk | FTP | other *** search
/ Revista CD Expert 8 / Revista CD Expert nº 08 CD1.iso / Utilitarios / Programacao / FirstBasic Compiler / MUSIC.BAS < prev    next >
BASIC Source File  |  1996-07-31  |  11KB  |  750 lines

  1. '┌───────────────────────────────────────────────────────────────────────────┐
  2. '│                                MUSIC.BAS                                  │
  3. '│                                                                           │
  4. '│   This  program is a simple demonstration of the sound capabilities       │
  5. '│ of FirstBasic.  It plays the classical "Two-Part Invention Number 4 in    │
  6. '│ D-Minor by Johann Sebastian Bach.                                         │
  7. '│                                                                           │
  8. '│  In order to run this program do the following:                           │
  9. '│    1. Load FirstBasic by typing FB at the DOS prompt.                     │
  10. '│    2. Load the file MUSIC.BAS from the Load option of the File            │
  11. '│       pulldown menu.                                                      │
  12. '│    3. Compile and run the program by pressing F9.                         │
  13. '└───────────────────────────────────────────────────────────────────────────┘
  14.  
  15.  
  16. DEFINT A-Z                     ' declare all variables integer type
  17. READ Frequency,Duration        ' read first Frequency and Duration pair
  18. WHILE Frequency <> -1          ' keep playing notes until the end of song
  19.   DELAY .05                    ' general delay for music clarity
  20.   IF Frequency = 0 THEN
  21.     '
  22.     ' If Frequency is 0 then pause for the Duration
  23.     '   value (in hundredths of a second)
  24.     '
  25.     SELECT CASE Duration
  26.     CASE 3
  27.       DELAY .03
  28.     CASE 6
  29.       DELAY .06
  30.     END SELECT
  31.   ELSE
  32.     '
  33.     ' Otherwise, use the SOUND statement to play the Frequency for
  34.     '   the proper Duration.  Remember that the SOUND statement
  35.     '   uses durations in Clock Tick.  The values used in the
  36.     '   following SOUND statements were pre-calculated for speed
  37.     '   and are derived by:
  38.     '      ClockTicks = Duration/100/0.0549
  39.     '        note:  0.0549 = number of seconds per clock tick
  40.     '
  41.     SELECT CASE Duration
  42.     CASE 3
  43.       SOUND Frequency,0.5464
  44.     CASE 6
  45.       SOUND Frequency,1.0929
  46.     CASE 8
  47.       SOUND Frequency,1.4572
  48.     CASE 9
  49.       SOUND Frequency,1.6393
  50.     END SELECT
  51.   END IF
  52.   READ Frequency,Duration      ' read in next Frequency and Duration pair
  53. WEND
  54. END
  55.  
  56. '
  57. '  Two-Part Invention Number 4 in D-Minor data
  58. '    Data is in Frequency and Duration Pairs:
  59. '      Frequency is the Note frequence to play
  60. '      Duration is the length (in 1/100 of a second) to play
  61. '    Data is terminated by Frequency and Duration = -1
  62. '
  63. DATA 586,6
  64. DATA 0,6
  65. DATA 658,6
  66. DATA 0,6
  67. DATA 697,6
  68. DATA 0,6
  69. DATA 782,6
  70. DATA 0,6
  71. DATA 878,6
  72. DATA 0,6
  73. DATA 930,6
  74. DATA 0,6
  75. DATA 553,6
  76. DATA 0,6
  77. DATA 930,6
  78. DATA 0,6
  79. DATA 878,6
  80. DATA 0,6
  81. DATA 782,6
  82. DATA 0,6
  83. DATA 697,6
  84. DATA 0,6
  85. DATA 658,6
  86. DATA 0,6
  87. DATA 697,6
  88. DATA 293,6
  89. DATA 0,6
  90. DATA 329,6
  91. DATA 878,6
  92. DATA 348,6
  93. DATA 0,6
  94. DATA 391,6
  95. DATA 1172,6
  96. DATA 439,6
  97. DATA 0,6
  98. DATA 465,6
  99. DATA 782,6
  100. DATA 277,6
  101. DATA 0,6
  102. DATA 465,6
  103. DATA 1106,6
  104. DATA 439,6
  105. DATA 0,6
  106. DATA 391,6
  107. DATA 1315,6
  108. DATA 348,6
  109. DATA 0,6
  110. DATA 329,6
  111. DATA 1172,6
  112. DATA 348,6
  113. DATA 1315,6
  114. DATA 0,6
  115. DATA 1394,6
  116. DATA 439,6
  117. DATA 1564,6
  118. DATA 0,6
  119. DATA 1756,6
  120. DATA 586,6
  121. DATA 1860,6
  122. DATA 0,6
  123. DATA 1106,6
  124. DATA 329,6
  125. DATA 1860,6
  126. DATA 0,6
  127. DATA 1756,6
  128. DATA 391,6
  129. DATA 1564,6
  130. DATA 0,6
  131. DATA 1394,6
  132. DATA 553,6
  133. DATA 1315,6
  134. DATA 0,6
  135. DATA 1394,6
  136. DATA 293,6
  137. DATA 1172,6
  138. DATA 0,6
  139. DATA 1315,6
  140. DATA 586,6
  141. DATA 1394,6
  142. DATA 0,6
  143. DATA 1564,6
  144. DATA 348,6
  145. DATA 1756,6
  146. DATA 0,6
  147. DATA 930,6
  148. DATA 391,6
  149. DATA 1756,6
  150. DATA 0,6
  151. DATA 1564,6
  152. DATA 439,6
  153. DATA 1394,6
  154. DATA 0,6
  155. DATA 1315,6
  156. DATA 465,6
  157. DATA 1172,6
  158. DATA 0,6
  159. DATA 1315,6
  160. DATA 261,6
  161. DATA 1044,6
  162. DATA 0,6
  163. DATA 1172,6
  164. DATA 522,6
  165. DATA 1315,6
  166. DATA 0,6
  167. DATA 1394,6
  168. DATA 329,6
  169. DATA 1564,6
  170. DATA 0,6
  171. DATA 878,6
  172. DATA 348,6
  173. DATA 1564,6
  174. DATA 0,6
  175. DATA 1394,6
  176. DATA 391,6
  177. DATA 1315,6
  178. DATA 0,6
  179. DATA 1172,6
  180. DATA 439,6
  181. DATA 1044,6
  182. DATA 0,6
  183. DATA 1172,6
  184. DATA 465,6
  185. DATA 1315,6
  186. DATA 391,6
  187. DATA 1394,6
  188. DATA 439,6
  189. DATA 1172,6
  190. DATA 465,6
  191. DATA 1315,6
  192. DATA 522,6
  193. DATA 1394,6
  194. DATA 586,6
  195. DATA 782,6
  196. DATA 329,6
  197. DATA 586,9
  198. DATA 0,3
  199. DATA 522,9
  200. DATA 0,3
  201. DATA 465,9
  202. DATA 0,3
  203. DATA 439,9
  204. DATA 0,3
  205. DATA 391,9
  206. DATA 0,3
  207. DATA 1044,6
  208. DATA 439,6
  209. DATA 1172,6
  210. DATA 348,6
  211. DATA 1315,6
  212. DATA 391,6
  213. DATA 1044,6
  214. DATA 439,6
  215. DATA 1172,6
  216. DATA 465,6
  217. DATA 1315,6
  218. DATA 522,6
  219. DATA 697,6
  220. DATA 293,6
  221. DATA 522,9
  222. DATA 0,3
  223. DATA 465,9
  224. DATA 0,3
  225. DATA 439,9
  226. DATA 0,3
  227. DATA 930,6
  228. DATA 391,6
  229. DATA 930,6
  230. DATA 391,6
  231. DATA 930,6
  232. DATA 329,6
  233. DATA 0,6
  234. DATA 261,6
  235. DATA 878,6
  236. DATA 293,6
  237. DATA 0,6
  238. DATA 329,6
  239. DATA 782,6
  240. DATA 348,6
  241. DATA 0,6
  242. DATA 391,6
  243. DATA 1044,6
  244. DATA 219,6
  245. DATA 930,6
  246. DATA 391,6
  247. DATA 878,6
  248. DATA 348,6
  249. DATA 782,6
  250. DATA 329,6
  251. DATA 697,6
  252. DATA 293,6
  253. DATA 658,6
  254. DATA 261,6
  255. DATA 697,6
  256. DATA 293,6
  257. DATA 782,6
  258. DATA 233,6
  259. DATA 782,6
  260. DATA 261,6
  261. DATA 782,6
  262. DATA 261,6
  263. DATA 782,6
  264. DATA 131,6
  265. DATA 697,6
  266. DATA 123,6
  267. DATA 697,6
  268. DATA 174,6
  269. DATA 0,6
  270. DATA 196,6
  271. DATA 1044,6
  272. DATA 219,6
  273. DATA 0,6
  274. DATA 233,6
  275. DATA 1044,6
  276. DATA 261,6
  277. DATA 0,6
  278. DATA 293,6
  279. DATA 1044,3
  280. DATA 1172,3
  281. DATA 164,6
  282. DATA 1044,3
  283. DATA 1172,3
  284. DATA 293,6
  285. DATA 1044,3
  286. DATA 1172,3
  287. DATA 261,6
  288. DATA 1044,3
  289. DATA 1172,3
  290. DATA 233,6
  291. DATA 1044,3
  292. DATA 1172,3
  293. DATA 219,6
  294. DATA 1044,3
  295. DATA 1172,3
  296. DATA 196,6
  297. DATA 1044,3
  298. DATA 1172,3
  299. DATA 219,6
  300. DATA 1044,3
  301. DATA 1172,3
  302. DATA 233,6
  303. DATA 1044,3
  304. DATA 1172,3
  305. DATA 261,6
  306. DATA 1044,3
  307. DATA 1172,3
  308. DATA 293,6
  309. DATA 1044,3
  310. DATA 1172,3
  311. DATA 329,6
  312. DATA 1044,3
  313. DATA 1172,3
  314. DATA 348,6
  315. DATA 1044,3
  316. DATA 1172,3
  317. DATA 196,6
  318. DATA 1044,3
  319. DATA 1172,3
  320. DATA 348,6
  321. DATA 1044,3
  322. DATA 1172,3
  323. DATA 329,6
  324. DATA 1044,3
  325. DATA 1172,3
  326. DATA 293,6
  327. DATA 1044,3
  328. DATA 1172,3
  329. DATA 261,6
  330. DATA 1044,3
  331. DATA 1172,3
  332. DATA 233,6
  333. DATA 1044,6
  334. DATA 219,6
  335. DATA 930,6
  336. DATA 233,6
  337. DATA 878,6
  338. DATA 261,6
  339. DATA 782,6
  340. DATA 219,6
  341. DATA 697,6
  342. DATA 233,6
  343. DATA 658,6
  344. DATA 261,6
  345. DATA 1044,6
  346. DATA 185,6
  347. DATA 586,6
  348. DATA 0,6
  349. DATA 658,6
  350. DATA 0,6
  351. DATA 738,6
  352. DATA 0,6
  353. DATA 782,6
  354. DATA 0,6
  355. DATA 878,6
  356. DATA 0,6
  357. DATA 930,6
  358. DATA 196,6
  359. DATA 878,6
  360. DATA 219,6
  361. DATA 782,6
  362. DATA 233,6
  363. DATA 697,6
  364. DATA 196,6
  365. DATA 658,6
  366. DATA 219,6
  367. DATA 586,6
  368. DATA 233,6
  369. DATA 930,6
  370. DATA 164,6
  371. DATA 522,6
  372. DATA 0,6
  373. DATA 586,6
  374. DATA 0,6
  375. DATA 658,6
  376. DATA 0,6
  377. DATA 697,6
  378. DATA 0,6
  379. DATA 782,6
  380. DATA 174,6
  381. DATA 878,6
  382. DATA 0,6
  383. DATA 985,6
  384. DATA 348,6
  385. DATA 1044,6
  386. DATA 0,6
  387. DATA 1172,6
  388. DATA 293,6
  389. DATA 1315,6
  390. DATA 0,6
  391. DATA 1394,6
  392. DATA 246,6
  393. DATA 829,6
  394. DATA 0,6
  395. DATA 1394,6
  396. DATA 207,6
  397. DATA 1315,6
  398. DATA 0,6
  399. DATA 1172,6
  400. DATA 164,6
  401. DATA 1044,6
  402. DATA 0,6
  403. DATA 985,6
  404. DATA 219,6
  405. DATA 1044,6
  406. DATA 207,6
  407. DATA 985,6
  408. DATA 219,6
  409. DATA 1172,6
  410. DATA 246,6
  411. DATA 1044,6
  412. DATA 261,6
  413. DATA 985,6
  414. DATA 293,6
  415. DATA 878,6
  416. DATA 329,3
  417. DATA 348,3
  418. DATA 829,6
  419. DATA 329,3
  420. DATA 348,3
  421. DATA 878,6
  422. DATA 329,3
  423. DATA 348,3
  424. DATA 829,6
  425. DATA 329,3
  426. DATA 348,3
  427. DATA 738,6
  428. DATA 329,3
  429. DATA 348,3
  430. DATA 658,6
  431. DATA 329,3
  432. DATA 348,3
  433. DATA 586,6
  434. DATA 329,3
  435. DATA 348,3
  436. DATA 522,6
  437. DATA 329,3
  438. DATA 348,6
  439. DATA 586,6
  440. DATA 329,3
  441. DATA 348,3
  442. DATA 658,6
  443. DATA 329,3
  444. DATA 348,3
  445. DATA 738,6
  446. DATA 329,3
  447. DATA 348,3
  448. DATA 829,6
  449. DATA 329,3
  450. DATA 348,3
  451. DATA 878,6
  452. DATA 329,3
  453. DATA 348,3
  454. DATA 586,6
  455. DATA 329,3
  456. DATA 348,3
  457. DATA 1044,6
  458. DATA 329,3
  459. DATA 348,3
  460. DATA 985,6
  461. DATA 329,3
  462. DATA 348,3
  463. DATA 878,6
  464. DATA 329,3
  465. DATA 348,3
  466. DATA 829,6
  467. DATA 329,3
  468. DATA 348,3
  469. DATA 738,6
  470. DATA 329,3
  471. DATA 348,3
  472. DATA 658,6
  473. DATA 329,3
  474. DATA 348,3
  475. DATA 738,6
  476. DATA 329,3
  477. DATA 348,3
  478. DATA 829,6
  479. DATA 329,3
  480. DATA 348,3
  481. DATA 878,6
  482. DATA 329,3
  483. DATA 348,3
  484. DATA 985,6
  485. DATA 329,3
  486. DATA 348,3
  487. DATA 1044,6
  488. DATA 329,3
  489. DATA 348,3
  490. DATA 738,6
  491. DATA 329,3
  492. DATA 348,3
  493. DATA 1315,6
  494. DATA 329,3
  495. DATA 348,3
  496. DATA 1172,6
  497. DATA 329,3
  498. DATA 348,3
  499. DATA 1044,6
  500. DATA 329,3
  501. DATA 348,3
  502. DATA 985,6
  503. DATA 329,3
  504. DATA 348,3
  505. DATA 878,6
  506. DATA 829,6
  507. DATA 329,6
  508. DATA 878,6
  509. DATA 0,6
  510. DATA 985,6
  511. DATA 658,6
  512. DATA 1044,6
  513. DATA 0,6
  514. DATA 1172,6
  515. DATA 586,6
  516. DATA 1315,6
  517. DATA 0,6
  518. DATA 878,6
  519. DATA 522,6
  520. DATA 1394,6
  521. DATA 0,6
  522. DATA 1315,6
  523. DATA 493,6
  524. DATA 1172,6
  525. DATA 0,6
  526. DATA 1044,6
  527. DATA 439,6
  528. DATA 985,6
  529. DATA 0,6
  530. DATA 1756,6
  531. DATA 586,6
  532. DATA 1657,6
  533. DATA 0,6
  534. DATA 1476,6
  535. DATA 658,6
  536. DATA 1315,6
  537. DATA 0,6
  538. DATA 1756,6
  539. DATA 697,6
  540. DATA 1756,6
  541. DATA 0,6
  542. DATA 1756,6
  543. DATA 586,6
  544. DATA 1172,6
  545. DATA 0,6
  546. DATA 985,3
  547. DATA 1044,3
  548. DATA 658,6
  549. DATA 985,3
  550. DATA 1044,3
  551. DATA 0,6
  552. DATA 985,3
  553. DATA 1044,3
  554. DATA 329,6
  555. DATA 878,6
  556. DATA 0,6
  557. DATA 878,6
  558. DATA 439,6
  559. DATA 878,6
  560. DATA 219,6
  561. DATA 878,6
  562. DATA 233,6
  563. DATA 878,6
  564. DATA 261,6
  565. DATA 930,6
  566. DATA 293,6
  567. DATA 1044,6
  568. DATA 310,6
  569. DATA 586,6
  570. DATA 185,6
  571. DATA 0,6
  572. DATA 310,6
  573. DATA 738,6
  574. DATA 293,6
  575. DATA 0,6
  576. DATA 261,6
  577. DATA 878,6
  578. DATA 233,6
  579. DATA 0,6
  580. DATA 219,6
  581. DATA 930,6
  582. DATA 196,6
  583. DATA 782,6
  584. DATA 196,6
  585. DATA 878,6
  586. DATA 196,6
  587. DATA 930,6
  588. DATA 196,6
  589. DATA 1044,6
  590. DATA 219,6
  591. DATA 1172,6
  592. DATA 233,6
  593. DATA 658,6
  594. DATA 131,6
  595. DATA 1172,6
  596. DATA 0,6
  597. DATA 1044,6
  598. DATA 196,6
  599. DATA 930,6
  600. DATA 0,6
  601. DATA 878,6
  602. DATA 261,6
  603. DATA 782,6
  604. DATA 0,6
  605. DATA 878,6
  606. DATA 348,6
  607. DATA 0,6
  608. DATA 391,6
  609. DATA 1394,6
  610. DATA 439,6
  611. DATA 1315,6
  612. DATA 493,6
  613. DATA 1394,6
  614. DATA 553,6
  615. DATA 0,6
  616. DATA 586,6
  617. DATA 782,6
  618. DATA 329,6
  619. DATA 0,6
  620. DATA 586,6
  621. DATA 1315,6
  622. DATA 553,6
  623. DATA 0,6
  624. DATA 493,6
  625. DATA 0,6
  626. DATA 439,6
  627. DATA 0,6
  628. DATA 391,6
  629. DATA 1172,6
  630. DATA 348,6
  631. DATA 1315,6
  632. DATA 0,6
  633. DATA 1394,6
  634. DATA 439,6
  635. DATA 1564,6
  636. DATA 0,6
  637. DATA 1756,6
  638. DATA 586,6
  639. DATA 1860,6
  640. DATA 0,6
  641. DATA 1106,6
  642. DATA 329,6
  643. DATA 1860,6
  644. DATA 0,6
  645. DATA 1756,6
  646. DATA 391,6
  647. DATA 1564,6
  648. DATA 0,6
  649. DATA 1394,6
  650. DATA 553,6
  651. DATA 1315,6
  652. DATA 0,6
  653. DATA 1394,6
  654. DATA 293,6
  655. DATA 0,6
  656. DATA 329,6
  657. DATA 1172,6
  658. DATA 348,6
  659. DATA 0,6
  660. DATA 391,6
  661. DATA 782,6
  662. DATA 439,6
  663. DATA 782,6
  664. DATA 465,6
  665. DATA 782,6
  666. DATA 277,6
  667. DATA 1172,6
  668. DATA 465,6
  669. DATA 1106,6
  670. DATA 439,6
  671. DATA 1315,6
  672. DATA 391,6
  673. DATA 878,6
  674. DATA 348,6
  675. DATA 1106,6
  676. DATA 329,6
  677. DATA 1172,6
  678. DATA 348,6
  679. DATA 985,6
  680. DATA 391,6
  681. DATA 1106,3
  682. DATA 1172,3
  683. DATA 439,6
  684. DATA 1106,3
  685. DATA 1172,3
  686. DATA 0,6
  687. DATA 1106,3
  688. DATA 1172,3
  689. DATA 219,6
  690. DATA 1172,6
  691. DATA 0,6
  692. DATA 1172,6
  693. DATA 233,6
  694. DATA 1044,6
  695. DATA 233,6
  696. DATA 930,6
  697. DATA 233,6
  698. DATA 878,6
  699. DATA 261,6
  700. DATA 782,6
  701. DATA 233,6
  702. DATA 697,6
  703. DATA 219,6
  704. DATA 930,8
  705. DATA 196,8
  706. DATA 553,8
  707. DATA 465,8
  708. DATA 586,8
  709. DATA 439,8
  710. DATA 658,8
  711. DATA 391,8
  712. DATA 697,8
  713. DATA 348,8
  714. DATA 782,8
  715. DATA 329,8
  716. DATA 878,9
  717. DATA 348,9
  718. DATA 1172,9
  719. DATA 391,9
  720. DATA 697,9
  721. DATA 439,9
  722. DATA 697,9
  723. DATA 439,9
  724. DATA 658,9
  725. DATA 219,9
  726. DATA 586,9
  727. DATA 219,9
  728. DATA 586,6
  729. DATA 146,6
  730. DATA 586,6
  731. DATA 146,6
  732. DATA 586,6
  733. DATA 146,6
  734. DATA 586,6
  735. DATA 146,6
  736. DATA 586,6
  737. DATA 146,6
  738. DATA 586,6
  739. DATA 146,6
  740. DATA 586,6
  741. DATA 146,6
  742. DATA 586,6
  743. DATA 146,6
  744. DATA 586,6
  745. DATA 146,6
  746. DATA -1,-1
  747. '
  748. '  end of data
  749. '
  750.